// pages/mine/mine.js
import {
  request
} from '../../service/network.js';
import {
  getSetting,
  login,
  showModal
} from '../../utils/utils.js';
const App = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    users: {},
    isNightMode: wx.getStorageSync('isNightMode'), //是否切换夜间模式
    inputConfig: { //自定义弹框输入框的配置
      num: 0, //初始化弹出框里的输入的字数
      value: '', //输入的新的昵称
      tip: '90天内只能修改一次昵称哦',
      maxlength: 12,
      errorMsg: '仅支持中文、英文、数字哦！', //错误信息的内容
    },
    mineFrameData: { //我的页面 传入popup弹框组件的数据
      frameConfig: { //组件配置
        isOpacity: false, //是否要组件透明
        isNeedMask: true, //是否需要组件遮罩
        isNeedTipText: true, //是否要提示信息
        isShowFrame: false, //是否弹出修改昵称弹框
        isShowError: false, //是否显示修改名字弹出的错误信息
      },
      frameData: { //组件数据
        nickName: '更改昵称',
        tip: '起个好听的名字,让朋友记住你!',
        btnNameLeft: '取消',
        btnNameRight: '确认',
      }
    },
    isLoginStatus: false //登录状态
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    this.getUserInfo()
  },
  async getUserInfo() {
    let res = await getSetting()
    let userInfo = wx.getStorageSync('userInfo')
    if (res.authSetting['scope.userInfo'] && userInfo) {
      this.setData({
        users: userInfo,
        isLoginStatus: true
      })
    } else {
      this.setData({
        users: {},
        isLoginStatus: false
      })
      wx.showModal({
        title: '温馨提示',
        content: '你未授权登录,无法使用网盘！',
        showCancel: false,
        confirmText: "好的"
      })
    }
  },
  //夜间模式激活函数
  nightMode(e) {
    this.setData({
      isNightMode: e.detail
    })
  },
  showFrame() {
    this.setData({
      'mineFrameData.frameConfig.isShowFrame': true
    })
  },
  async goToLogin() {
    let result = await showModal({
      content: '确定退出该账户？将清空该账号的缓存数据！',
      showCancel: true,
      cancelText: '取消',
      confirmText: '确定',
    })
    if (result.confirm) {
      wx.clearStorageSync();
      this.onLoad()
    } else {
      console.log(22);
    }
  },
  //**************修改昵称处理函数*****************
  goModifyName() { //点击修改按钮处理函数
    this.setData({
      'mineFrameData.frameConfig.isShowFrame': !this.data.mineFrameData.frameConfig.isShowFrame,
      'inputConfig.num': this.data.users.nickname.length,
    })
  },
  inputTrigger(e) { //子组件传过来的inputTrigger输入框监听事件处理函数
    let char = /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/;
    let reg = new RegExp(char);
    if (reg.test(e.detail.value)) {
      this.setData({
        'mineFrameData.frameConfig.isShowError': false,
        'inputConfig.num': e.detail.cursor,
        'inputConfig.value': e.detail.value
      })
    } else {
      this.setData({
        'mineFrameData.frameConfig.isShowError': true,
        'inputConfig.num': e.detail.cursor
      })
    }
  },
  async defineBtn() { //子组件传过来的definer确认修改按钮事件处理函数
    let userInfo = wx.getStorageSync('userInfo');
    if (this.data.inputConfig.value && this.data.inputConfig.value != this.data.users.name) {
      let res = await request({
        url: '/userdata/modifyname.php',
        method: 'POST',
        data: {
          userid: userInfo.id,
          nickname: this.data.inputConfig.value
        }
      })
      if (res.status == 200) {
        userInfo.nickname = this.data.inputConfig.value,
          this.setData({
            'users.nickname': this.data.inputConfig.value,
          })
        wx.showToast({
          title: '修改成功',
          image: '/static/img/icon/success.png',
          duration: 600
        })
        wx.setStorageSync('userInfo', userInfo)
      } else {
        wx.showToast({
          title: '修改失败',
          image: '/static/img/icon/tips.png',
          icon: 'none',
          duration: 600
        })
      }
    }
    this.goModifyName()
  },
  async bindGetUserInfo(e) {
    if (e.detail.rawData) {
      let res1 = await login()
      wx.showLoading({
        title: '授权中',
        mask: true
      })
      let res = await request({
        url: '/userdata/userinfo.php',
        method: "POST",
        data: {
          code: res1.code,
          nickName: e.detail.userInfo.nickName,
          gender: e.detail.userInfo.gender,
          city: e.detail.userInfo.city,
          avatarUrl: e.detail.userInfo.avatarUrl,
          province: e.detail.userInfo.province,
          country: e.detail.userInfo.country
        }
      })
      if (parseInt(res.data.status)) {
        wx.setStorageSync('userInfo', res.data)
        wx.hideLoading()
        this.getUserInfo()
      } else {
        wx.hideLoading()
        wx.showModal({
          title: '温馨提示',
          content: '账号被禁止登录，请联系管理员!',
          showCancel: false,
          confirmText: '确定',
        })
      }
    }
  },
  showdownload(e) {
    console.log(e);
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getUserInfo()
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})